package api

type CustomerTempReq struct {
	Account     string `json:"account"`
	ReqJson     string `json:"req_json"`
	CustomerId  string `json:"customer_id"`
	AccountType string `json:"account_type"`
}

type CustomerTempRes struct {
	Account    string `json:"account"`
	ReqJson    string `json:"req_json"`
	CustomerId string `json:"customer_id"`
}

type WorkflowResultRes struct {
	ApiVersion                 string   `json:"api_version"`
	WorkflowInstanceIdentifier string   `json:"workflow_instance_identifier"`
	WorkflowType               string   `json:"workflow_type"`
	Steps                      []string `json:"steps"`
	Status                     string   `json:"status"`
	StepDetails                struct {
		CustomerCreation struct {
			Status     string `json:"status"`
			Identifier string `json:"identifier"`
			StepOutput struct {
				CustomerIdentifier string `json:"customer_identifier"`
			} `json:"step_output"`
		} `json:"customer-creation"`
		InitialRiskScoring struct {
			Status     string `json:"status"`
			Identifier string `json:"identifier"`
			StepOutput struct {
				OverallValue int    `json:"overall_value"`
				OverallLevel string `json:"overall_level"`
			} `json:"step_output"`
		} `json:"initial-risk-scoring"`
		CustomerScreening struct {
			Status     string `json:"status"`
			Identifier string `json:"identifier"`
			StepOutput struct {
				ScreeningResult string `json:"screening_result"`
			} `json:"step_output"`
		} `json:"customer-screening"`
		Alerting struct {
			Status     string      `json:"status"`
			Identifier interface{} `json:"identifier"`
			StepOutput struct {
				Alerts []struct {
					Identifier string `json:"identifier"`
				} `json:"alerts"`
			} `json:"step_output"`
		} `json:"alerting"`
		CaseCreation struct {
			Status     string `json:"status"`
			Identifier string `json:"identifier"`
			StepOutput struct {
				CaseIdentifier string `json:"case_identifier"`
			} `json:"step_output"`
		} `json:"case-creation"`
	} `json:"step_details"`
}

type PaymentRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type PaymentPurposeRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type IncomeSourceRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type CompanyTypeRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type BusinessTypeRes struct {
	Code string `json:"code"`
	Desc string `json:"desc"`
}

type CustomerOnboardingRes struct {
	//Token       string `json:"token"`
	Account     string `json:"account"`
	AccountType string `json:"account_type"`
	CustomerId  string `json:"customer_id"`
}

type ComplyAuthReq struct {
	UserName string `json:"username"`
	PassWord string `json:"password"`
	Realm    string `json:"realm"`
}

type ComplyAuthRes struct {
	AccessToken string `json:"access_token"`
	Scope       string `json:"scope"`
	ExpiresIn   int64  `json:"expires_in"`
	TokenType   string `json:"token_type"`
}

type LegalPerson struct {
	LegalPerson struct {
		CountryOfBirth     string `json:"country_of_birth"`
		FirstName          string `json:"first_name"`
		MiddleName         string `json:"middle_name"`
		LastName           string `json:"last_name"`
		ContactInformation struct {
			EmailAddress []string `json:"email_address"`
			PhoneNumber  []string `json:"phone_number"`
		} `json:"contact_information"`
		PersonalIdentification []struct {
			Type               string `json:"type"`
			DocumentIdentifier string `json:"document_identifier"`
			IssuingCountry     string `json:"issuing_country"`
			IdentifierFile     []struct {
				Name string `json:"name"`
				Url  string `json:"url"`
			} `json:"identifier_file"`
		} `json:"personal_identification"`
		DateOfBirth struct {
			Year  int `json:"year"`
			Month int `json:"month"`
			Day   int `json:"day"`
		} `json:"date_of_birth"`
		ResidentialInformation []struct {
			CountryOfResidence string `json:"country_of_residence"`
		} `json:"residential_information"`
	} `json:"legalPerson"`
}
